package com.minimalist.lindi.service;

import com.minimalist.common.config.mybatis.bo.PageResp;
import com.minimalist.common.entity.lindi.po.LindiIndexChangeRecord;
import com.minimalist.common.entity.lindi.vo.indexchangerecord.LindiIndexChangeRecordQueryVO;
import com.minimalist.common.entity.lindi.vo.indexchangerecord.LindiIndexChangeRecordVO;
import com.mybatisflex.core.service.IService;
import jakarta.validation.constraints.NotNull;

/**
 * 林地指标平台_林地指标变更记录表 服务层。
 *
 * @author 11987
 * @since 2025-05-13
 */
public interface LindiIndexChangeRecordService extends IService<LindiIndexChangeRecord> {

    /**
     * 新增指标变更记录。
     *
     * @param recordVO 指标变更记录VO对象。
     */
    void addIndexChangeRecord(LindiIndexChangeRecordVO recordVO);

    /**
     * 删除指标变更记录。
     *
     * @param recordId 记录ID。
     */
    void deleteIndexChangeRecordByIndexChangeRecordId(@NotNull(message = "记录ID不能为空") Long indexChangeRecordId);

    /**
     * 更新指标变更记录。
     *
     * @param recordVO 指标变更记录VO对象。
     */
    void updateIndexChangeRecordByIndexChangeRecordId(LindiIndexChangeRecordVO recordVO);

    /**
     * 查询指标变更记录分页列表。
     *
     * @param queryVO 查询条件。
     * @return 分页列表。
     */
    PageResp<LindiIndexChangeRecordVO> getPageIndexChangeRecordList(LindiIndexChangeRecordQueryVO queryVO);

    /***
     * 根据记录ID查询指标变更记录。
     * @param recordId 记录ID。
     * @return 指标变更记录VO对象。
     */
    LindiIndexChangeRecordVO getIndexChangeRecordByIndexChangeRecordId(Long indexChangeRecordId);
}
